/**
 * @author zhangyi1
 */
/**
 * 接纳另外一个数组
 * @param {Object} array
 */
Array.prototype.extend = function(array) {
	for(var i=0,j=array.length;i<j;i++) this.push(array[i]);
	return this;
}
/**
 * map 迭代数组中的项并执行一个回调函数
 * @param {Object} fn
 * @param {Object} bind
 */
Array.prototype.map = function(fn,bind) {
	var results = [];
	for(var i=0,l=this.length;i<l;i++) results[i] = fn.call(bind,this[i]);
	return results;
}
/**
 * 测试数组中是否含有所给出的项 
 * @param {Object} item
 * @param {Object} from
 */
Array.prototype.contains = function(item,from) {
	return this.indexOf(item,from) != -1;
}
/**
 * 加一个indexOf与String方法类似
 * @param {Object} item
 * @param {Object} from
 */
Array.prototype.indexOf = function(item, from){
	var len = this.length;
	for (var i = (from < 0) ? Math.max(0, len + from) : from || 0; i < len; i++){
		if (this[i] === item) return i;
	}
	return -1;
}
/**
 * 数组的每一个元素都被传入指定的 funtion 执行
 * @param {Object} fn
 */
Array.prototype.each = function(fn) {
	for (var i=0,len=this.length; i<len; i++){
		fn(this[i],i);
	}
	return this;	
} 